package com.aitaoxue.palx.db.course;

import java.util.Map;

import android.database.sqlite.SQLiteDatabase;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.AbstractDaoSession;
import de.greenrobot.dao.identityscope.IdentityScopeType;
import de.greenrobot.dao.internal.DaoConfig;

public class DaoSession extends AbstractDaoSession {
	private final DaoConfig courseDaoConfig;
	private final DaoConfig courseTypeDaoConfig;

	private final CourseDao courseDao;
	private final CourseTypeDao courseTypeDao;

	public DaoSession(SQLiteDatabase db, IdentityScopeType type,
			Map<Class<? extends AbstractDao<?, ?>>, DaoConfig> daoConfigMap) {
		super(db);

		courseDaoConfig = daoConfigMap.get(CourseDao.class);
		courseDaoConfig.initIdentityScope(type);

		courseTypeDaoConfig = daoConfigMap.get(CourseTypeDao.class);
		courseTypeDaoConfig.initIdentityScope(type);

		courseDao = new CourseDao(courseDaoConfig, this);
		courseTypeDao = new CourseTypeDao(courseTypeDaoConfig, this);

		registerDao(Course.class, courseDao);
		registerDao(CourseType.class, courseTypeDao);
	}

	public CourseDao getCourseDao() {
		return courseDao;
	}

	public CourseTypeDao getCourseTypeDao() {
		return courseTypeDao;
	}

	public void clear() {
		courseDaoConfig.getIdentityScope().clear();
		courseTypeDaoConfig.getIdentityScope().clear();
	}
}
